package 中介者模式;
/**
 * 使用 User 对象来显示他们之间的通信
 * @author xq
 */
public class MediatorPatternDemo {
	/**
	 * 中介者模式的优缺点
		优点：
		
		简化了对象之间的关系，将系统的各个对象之间的相互关系进行封装，将各个同事类解耦，使得系统变为松耦合。
		提供系统的灵活性，使得各个同事对象独立而易于复用。
		缺点：
		
		中介者模式中，中介者角色承担了较多的责任，所以一旦这个中介者对象出现了问题，整个系统将会受到重大的影响。
		新增加一个同事类时，不得不去修改抽象中介者类和具体中介者类，此时可以使用观察者模式和状态模式来解决这个问题。
		中介者模式的适用场景
		以下情况下可以考虑使用中介者模式：
		
		一组定义良好的对象，现在要进行复杂的相互通信。
		想通过一个中间类来封装多个类中的行为，而又不想生成太多的子类。
	 * @param args
	 */
   public static void main(String[] args) {
      User robert = new User("Robert");
      User john = new User("John");
 
      robert.sendMessage("Hi! John!");
      john.sendMessage("Hello! Robert!");
   }
}